Print shops are typically medium or large scale facilities capable of supplying printing services to meet a variety of customer demands. For example, print shops are often used to print documents for mass-mailing (e.g., customer bills, advertisements, etc). Because print shops engage in printing on a scale that is hard to match, their customer base is usually varied. Print shop clients may therefore include both large institutional clients (e.g., credit card companies and banks), and small clients (e.g., small businesses and churches).
Print shops are generally arranged to print incoming jobs from clients in a way that is economical, yet fast. Thus, print shops often include a number of high-volume printers capable of printing incoming jobs quickly and at high quality. These printers may be managed by operators who can remove paper jams and reload the printers with media. Print shops also typically include post-print devices that are used to process the printed documents of each job (e.g., stackers, staplers, cutters, binders, etc.). Because print shops serve a variety of clients, they are often tasked with printing jobs that have varying printing formats, delivery dates, and media requirements. Print shops therefore often use a centralized print server that coordinates the activity between printers of the print shop and clients. The print server schedules incoming jobs and forwards them to the printers they are directed to.
Customers with printing needs generate print jobs for the print shop using a variety of tools, such as web interfaces to the print shop, client side tools operated by the customer, etc. When a customer generates a job for the print shop, options for the job are selected by the customer and integrated into the print job (e.g., a job ticket for the customer's print data indicates duplexing, media types, etc.) based on the capabilities and activities that the print shop offers to customers. A print shop operator then generates a print workflow for the print job. The print workflow includes sequences of steps that identify the print shop activities to perform for the print job. Such steps may include a variety of actions such as printing, stapling, generating billing for the customer, shipping, an email verification process for proof sheets, etc.
Some print workflows include a number of branches that allow error handling to occur outside of the main-line workflow. However, branching also increases the complexity of the print workflow, which may be difficult to implement without introducing new errors.